package config

import (
	"encoding/json"
	"fmt"
	"log"
	"os"
)

type ConfigStruct struct {
	Domain     string `json:"domain"`
	SecretKey  string `json:"secret_key"`
	Host       string `json:"host"`
	Port       int    `json:"port"`
	DB         string `json:"db"`
	PublicSalt string `json:"public_salt"`
}

var (
	Config ConfigStruct
)

func parseJsonFile(path string, v interface{}) {
	file, err := os.Open(path)
	if err != nil {
		log.Fatal("配置文件读取失败:", err)
	}
	defer file.Close()
	dec := json.NewDecoder(file)
	err = dec.Decode(v)
	if err != nil {
		log.Fatal("配置文件解析失败:", err)
	}
}

func GetConfig() ConfigStruct {
	parseJsonFile("./config/config.json", &Config)
	if Config.DB == "" {
		fmt.Println("数据库地址还没有配置,请到config.json内配置db字段.")
		os.Exit(1)
	}

	return Config
}
